Androidで電話帳にデータを追加するサンプル
Androidの電話帳にプログラムから名前と携帯の電話番号、メールアドレスを登録するサンプルを作りました。 以下がソースになります。Androidのバージョンは2.3.3です。
package sample.contacts; import android.app.Activity; import android.content.ContentUris; import android.content.ContentValues; import android.net.Uri; import android.os.Bundle; import android.provider.ContactsContract; import android.provider.ContactsContract.RawContacts; import android.provider.ContactsContract.CommonDataKinds.Email; import android.provider.ContactsContract.CommonDataKinds.Phone; import android.provider.ContactsContract.CommonDataKinds.StructuredName; import android.provider.ContactsContract.Contacts.Data; public class SampleContacts extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ContentValues values = new ContentValues(); Uri rawContactUri = getContentResolver().insert(RawContacts.CONTENT_URI, values); long rawContactId = ContentUris.parseId(rawContactUri); values.clear(); values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId); values.put(ContactsContract.Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE); values.put(StructuredName.DISPLAY_NAME, "hakamata"); getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values); // 携帯の電話番号を登録 Uri mobileUri = Uri.withAppendedPath(rawContactUri, Data.CONTENT_DIRECTORY); values.clear(); values.put(Phone.TYPE, Phone.TYPE_MOBILE); values.put(Phone.IS_SUPER_PRIMARY, 1); values.put(ContactsContract.Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE); values.put(Phone.NUMBER, "09012345678"); getContentResolver().insert(mobileUri, values); // 携帯のメアドを登録 Uri emailUri = Uri.withAppendedPath(rawContactUri, Data.CONTENT_DIRECTORY); values.clear(); values.put(Email.TYPE, Email.TYPE_MOBILE); values.put(ContactsContract.Data.MIMETYPE, Email.CONTENT_ITEM_TYPE); values.put(Email.DATA1, "test@sample.jp"); getContentResolver().insert(emailUri, values); } }
AndroidManifest.xmlに android.permission.WRITE_CONTACTS のパーミッションを追加しておいて下さい。